/*
 *  OcdAI.h
 *  RiskAI
 *
 *  OCD AI wants to keep his territories. If one of them gets conquered,
 *  he will try to take it back, DAMN THE CONSEQUENCES!!
 *
 *  He operates on the following priorities:
 *
 *    - Pick territories that are clustered around each other.
 *	  - Put troops in territories closest to the ones that I recently
 *			lost. If that's not applicable, just guard borders.
 *	  - Move/Fortify troops to borders with the most enemies around.
 *    - Attack any territory that I owned at the end of my last turn, or
 *			territories that are on the way to getting to that one.
 *	  - Defend with smart-timid dice (don't go for 4's)
 *
 */

#ifndef OCD_AI_H_INCLUDED
#define OCD_AI_H_INCLUDED

#include "Player.h"

class COcdAI : public CPlayer
{
public:
	
	COcdAI(int iIndex, CBoard* pxBoard);

	// virtual functions overridden in derived classes
	virtual int PickTerritory(std::vector<int> viAvailables);
	virtual int AssignTroops(int iNumTroops);
	virtual int MoveTroops(int iSourceIndex, int iDestinationIndex);
	virtual RiskAction DecideOnAction(std::vector<int> viViableAttackers);
	virtual int PickDefendingDie(int* aiAttackDice, int iTarget);
	virtual CFortification FortifyTroops(std::vector<int> viFortifiers);

};

#endif // OCD_AI_H_INCLUDED